/**
 * 密码管理器主应用程序
 * 负责初始化和启动整个应用
 */

// 当DOM加载完成后初始化应用
document.addEventListener('DOMContentLoaded', () => {
    // 初始化UI模块
    UIModule.init();
    
    // 初始化模态框事件处理
    initModalEvents();
    
    // 显示应用版本信息
    console.log('密码管理器 v1.0.0 已加载');
});

/**
 * 初始化模态框事件处理
 * 确保模态框关闭时清除遮罩层
 */
function initModalEvents() {
    // 获取所有模态框元素
    const modals = document.querySelectorAll('.modal');
    
    modals.forEach(modal => {
        // 监听模态框隐藏事件
        modal.addEventListener('hidden.bs.modal', () => {
            // 使用UIModule的clearBackdrop方法清除遮罩
            UIModule.clearBackdrop();
        });
    });
    
    // 添加全局点击事件处理
    document.addEventListener('click', (e) => {
        // 如果点击了带有data-bs-dismiss="modal"属性的元素
        if (e.target.hasAttribute('data-bs-dismiss') && e.target.getAttribute('data-bs-dismiss') === 'modal') {
            // 延迟一下再清除遮罩，确保模态框关闭动画完成
            setTimeout(() => {
                UIModule.clearBackdrop();
            }, 300);
        }
    });
}

// 处理页面可见性变化（用于自动锁定）
document.addEventListener('visibilitychange', () => {
    if (document.visibilityState === 'hidden') {
        // 记录离开时间
        localStorage.setItem('lastInactive', Date.now().toString());
    } else if (document.visibilityState === 'visible') {
        // 检查是否超过自动锁定时间
        const lastInactive = parseInt(localStorage.getItem('lastInactive') || '0');
        if (lastInactive > 0) {
            const settings = StorageModule.getSettings();
            const autoLogoutMinutes = settings.autoLogout || 5;
            const inactiveTime = (Date.now() - lastInactive) / 1000 / 60; // 转换为分钟
            
            if (inactiveTime >= autoLogoutMinutes && !document.getElementById('app-container').classList.contains('d-none')) {
                // 自动锁定
                UIModule.handleLogout();
                UIModule.showAlert('由于长时间无操作，系统已自动锁定', 'info');
            }
        }
    }
});

// 检查app.js是否存在，如不存在则无需修改此文件 